package com.wires.lu.practice.oom;


/**
 * 高并发请求服务器时 经常出现如下异常 java.lang.OutOfMemoryError :unable to create  new native thread
 * z准确的讲 native thread异常与对应的平台有关
 *
 * 高并发请求服务器时 一个应用进程创建多个线程时 超过系统承载极限
 * 你的服务器并不允许你的应用程序创建这么多的线程 linux系统默认允许单个进程可以创建的线程数为1024
 * 你的应用创建超过这个数据量 就会报java.lang.OutOfMemoryError:unable to create new Native thread
 *
 * 解决办法:
 * 想办法降低你应用程序创建线程的数量  分析应用是否真的需要创建那么多的线程 如果不是 改代码将线程数降到最低
 * 对于有的应用 的确需要创建很多线程 远超过Linux系统默认的1024个线程的限制 可以通过修改linux服务器配置 扩大linux默认限制
 */
public class UnableCreateNewThreademo {
    public static void main(String[] args) {
        for (int i=0;;i++){

            System.out.println("********i="+i);
            new Thread(()->{
                try {
                    Thread.sleep(Integer.MAX_VALUE);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            },""+i).start();
        }
    }
}



